#include "auxiliar.h"

void printHelp(){
        fprintf(stderr, "UTILIZE AS SEGUINTES SINTAXES:\n");
        fprintf(stderr, "\tagendaUserManager ADD nome_usuario senha_usuario\n");
        fprintf(stderr, "\tagendaUserManager UPDATE nome_usuario senha_usuario\n");
        fprintf(stderr, "\tagendaUserManager REMOVE nome_usuario senha_usuario\n");
}

int main(int argc, char *argv[]) {
    char *nome, *senha;

    char flagDecisao = 'N', buffer[1000];

    if ( argc != 4 ) {
        fprintf(stderr, "Quantidade de parametros Inválidos.\n\n");
        printHelp();
        exit(1);
    }

    nome = argv[2];
    senha = argv[3];

    if(strlen(senha)>20){
        fprintf(stderr, "Senha muito longa.. Escolha ate 20 digitos.\n\n");
		exit(-1);
	}

    if(!matchUsername(nome)){
        fprintf(stderr, "Nome digitado invalido!\n");
        exit(-1);
    }
    
    if (strcmp(argv[1],"ADD") == 0){
        criarUsuario(nome, senha);
    } else if (strcmp(argv[1],"UPDATE")==0 ){
        atualizarUsuario(nome, senha);
    } else if (strcmp(argv[1],"REMOVE")==0 ){
        fprintf(stdout, "Este comando irá deletar o usuário e sua agenda, deseja prosseguir? [ s / N ]");
        
        scanf("%c",&flagDecisao); getchar(); fflush(stdin);
    
        while( flagDecisao != 'N' && flagDecisao != '\n'  &&
               flagDecisao != 'n' && flagDecisao != 'S' && flagDecisao != 's' ){
            fprintf(stdout, "Este comando irá deletar o usuário e sua agenda, deseja prosseguir? [ s / N ]");
            scanf("%c",&flagDecisao); getchar(); fflush(stdin);
        }

        if ( flagDecisao == 'S' || flagDecisao == 's' ){
            deleteUsuario(nome);
        }
        
    } else {
        fprintf(stderr, "Comando desconhecido.\n\n");
        printHelp();
        exit(1);
    }

	fprintf(stdout,"Bye...\n");
  
	return 0;
 }

